/*	TGConfigureSheetController.h
 *	Part of ThinkGeek LED Clock
 *	http://cs.beloit.edu/~morgant/thinkgeek/
 *
 * Copyright (c)2003-2005 Tim Morgan. All rights reserved.
 * Please visit http://cs.beloit.edu/~morgant/other/license.html
 * for more information about your rights and responsibilities
 * regarding this source code.
 */

#import <Cocoa/Cocoa.h>

#import "TGDefaultsModel.h"
#import "TM_FileNameFromPathTransformer.h"
#import "TMModelKeyFromViewNameTransformer.h"
#import "TGDefaultsLoader.h"

/**
 * Manages the Options sheet; loads the sheet from the nib and handles
 * user input. When the class is first loaded, it associates instances
 * of any transformer classes used by the sheet with their string constant
 * representations (as used by Cocoa bindings). When buttons are clicked,
 * the messages are passed first to this class.
 *
 * @author Tim Morgan
 */

@interface TGConfigureSheetController : NSObject {
    IBOutlet NSWindow			*configureSheet;
	IBOutlet TGDefaultsModel	*defaultsModel;
}

#pragma mark <<initialization>>

/**
 * Configures transformers used in the window.  Must be called before loading
 * the nib containing the instance of this class.
 */

+ (void) configureTransformers;

- (void) awakeFromNib;

/**
 * Returns the singleton instance of this class.
 *
 * @return The instance of this class
 */

+ (TGConfigureSheetController *) controller;

#pragma mark <<user interface>>

/**
 * Returns the Configure sheet.
 *
 * @param The configuration options sheet
 */

- (NSWindow *) configureSheet;

#pragma mark <<user input>>
- (IBAction) doneButtonPressed:(id)sender;
- (IBAction) chooseImageButtonPressed:(id)sender;
- (IBAction) bcdClockSiteButtonPressed:(id)sender;
- (IBAction) tixClockSiteButtonPressed:(id)sender;
- (IBAction) checkNowButtonPressed:(id)sender;

@end
